]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
2 months agoTeam upload
Simon McVittie [Sun, 23 Aug 2026 12:28:33 +0000 (13:28 +0100)]
Team upload

2 months agoNew upstream release
Simon McVittie [Sat, 22 Aug 2026 15:09:47 +0000 (16:09 +0100)]
New upstream release

2 months agoUpdate upstream source from tag 'upstream/50.4'
Simon McVittie [Sat, 22 Aug 2026 15:09:47 +0000 (16:09 +0100)]
Update upstream source from tag 'upstream/50.4'

Update to upstream version '50.4'
with Debian dir 18fb2aa1b7c7db7823d904843fa84863dd98f7e1

2 months agoNew upstream version 50.4
Simon McVittie [Sat, 22 Aug 2026 15:09:35 +0000 (16:09 +0100)]
New upstream version 50.4

2 months agoUpdate changelog
Simon McVittie [Sat, 22 Aug 2026 15:08:36 +0000 (16:08 +0100)]
Update changelog

2 months agod/watch: Only watch for version 50.x on this branch
Simon McVittie [Sat, 22 Aug 2026 15:07:57 +0000 (16:07 +0100)]
d/watch: Only watch for version 50.x on this branch

3 months agoRelease to unstable
Simon McVittie [Mon, 3 Aug 2026 09:52:20 +0000 (10:52 +0100)]
Release to unstable

3 months agoBump version to 50.4
Florian Müllner [Sun, 2 Aug 2026 17:23:45 +0000 (19:23 +0200)]
Bump version to 50.4

Update NEWS.

3 months agoUpdate changelog
Simon McVittie [Sun, 2 Aug 2026 17:01:29 +0000 (18:01 +0100)]
Update changelog

3 months agoUpdate upstream source from tag 'upstream/50.3'
Simon McVittie [Sun, 2 Aug 2026 17:01:29 +0000 (18:01 +0100)]
Update upstream source from tag 'upstream/50.3'

Update to upstream version '50.3'
with Debian dir 50d81635a59257a644e3b017b33ee158f0191564

3 months agoNew upstream version 50.3
Simon McVittie [Sun, 2 Aug 2026 17:01:15 +0000 (18:01 +0100)]
New upstream version 50.3

3 months agod/control, d/gbp.conf: Branch for GNOME 50
Simon McVittie [Sun, 2 Aug 2026 16:54:55 +0000 (17:54 +0100)]
d/control, d/gbp.conf: Branch for GNOME 50

The debian/latest branch now contains GNOME 51 prereleases, for
experimental.

3 months agosearch: Do not unregister a provider that was not registered
htrex [Wed, 29 Jul 2026 09:51:52 +0000 (11:51 +0200)]
search: Do not unregister a provider that was not registered

If the passed provider is not in this._providers, indexOf() returns -1 and
splice(-1, 1) silently removes the LAST provider in the array - an arbitrary,
unrelated provider.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/9317
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4308>
(cherry picked from commit a4c7d5e60e4f0982f7dfa048b7400eb4fdf2f97e)

3 months agolookingGlass: Use TERMINAL input purpose
Florian Müllner [Thu, 30 Jul 2026 22:43:12 +0000 (00:43 +0200)]
lookingGlass: Use TERMINAL input purpose

Similar to the run dialog, the looking glass evaluator also has some
terminal-like features like tab completion and history navigation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4312>
(cherry picked from commit 0186f09f596807f2159cca4d127134c91c63ed6b)

3 months agorunDialog: Use TERMINAL input purpose
Florian Müllner [Thu, 30 Jul 2026 22:41:40 +0000 (00:41 +0200)]
runDialog: Use TERMINAL input purpose

While not an actual terminal, the run dialog uses several features
that are terminal-like:

 - tab completion
 - history navigation
 - keybindings with modifiers (ctrl+return)

It therefore makes some sense to use the TERMINAL in purpose
(although the dialog itself isn't reachable in a pure touch
environment).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4312>
(cherry picked from commit 3ab39b9c90eb4da09c7cc5704b0830b6adcec655)

3 months agoenvironment: Extract transition completion handling into helper function
Joan Torres Lopez [Fri, 20 Feb 2026 11:39:39 +0000 (12:39 +0100)]
environment: Extract transition completion handling into helper function

Add _setupTransitionCompletion to centralize started/stopped signal
handling and cleanup logic. Both _easeActor and _easeAnimatableProperty
now use this helper, reducing code duplication and ensuring consistent
behavior. The signal holder is created as a child of sessionSignalHolder
for proper cleanup on session shutdown.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4082>
(cherry picked from commit 3b638993b7456565ec6f60ceb20df39302313d39)

3 months agoenvironment: Keep cleanup symmetrical with prepare in ease functions
Joan Torres Lopez [Wed, 25 Feb 2026 13:19:41 +0000 (14:19 +0100)]
environment: Keep cleanup symmetrical with prepare in ease functions

Add a guard to prevent cleanup() from running when prepare() was never
called. Currently cleanup() is called when "stopped" is emitted (which
ensures prepare() was called), in next commits cleanup will be called
from different events which means prepare() may not have been called.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4082>
(cherry picked from commit 841ff6cfa247e69ed2c466c880846d1cceb3eece)

3 months agoauthPrompt: Use connectObject for userVerifier signals
Joan Torres Lopez [Mon, 16 Feb 2026 15:05:17 +0000 (16:05 +0100)]
authPrompt: Use connectObject for userVerifier signals

This allows cleanly disconnecting all signals at once when the
authPrompt is destroyed, preventing potential issues from stale
signal handlers.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4306>
(cherry picked from commit 8f9031688c4dc700f74936a2c1e0b221babb8253)

3 months agoauthPrompt: Don't reset preemptiveAnswer when VERIFICATION_IN_PROGRESS
Joan Torres Lopez [Wed, 21 Jan 2026 13:23:34 +0000 (14:23 +0100)]
authPrompt: Don't reset preemptiveAnswer when VERIFICATION_IN_PROGRESS

PreemptiveAnswer wasn't being used in the case where verification is in
progress and the smartcard is inserted, triggering a reset.

This change ensures a preemptive answer will be used once smartcard
service asks for the PIN.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4306>
(cherry picked from commit 9b78793ead5c3b80e39524c2ed5648798d3c27e7)

3 months agounlockDialog: Wait for authPrompt destruction before switching VT
Joan Torres Lopez [Thu, 12 Feb 2026 15:38:54 +0000 (16:38 +0100)]
unlockDialog: Wait for authPrompt destruction before switching VT

When switching to another user, wait until authPrompt is destroyed
and the clock transition animation completes before switching to
the login session VT.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4306>
(cherry picked from commit 5f7eb76031dc795a593e859566f519a458a81698)

3 months agounlockDialog: Fix username reuse on reset
Joan Torres Lopez [Thu, 12 Feb 2026 15:38:04 +0000 (16:38 +0100)]
unlockDialog: Fix username reuse on reset

The condition was checking for PROVIDE_USERNAME specifically, but
should also handle REUSE_USERNAME. Check for not DONT_PROVIDE_USERNAME
instead to correctly reuse the username when requested.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4306>
(cherry picked from commit 2cb0627a467f2057c28bda57b6858ef04a7ddb55)

3 months agostatus/volume: Redundant volume pushes cause DSP crackling
Andre Eikmeyer [Mon, 27 Jul 2026 11:57:25 +0000 (13:57 +0200)]
status/volume: Redundant volume pushes cause DSP crackling

Dragging the Quick Settings volume slider generates a dense sequence of
value notifications. After GVC rounds a requested value and scales the
channel map, several consecutive notifications can result in the same
effective channel volumes.

The shell currently assigns the value through the GObject property and
calls push_volume() unconditionally. The property setter discards the
boolean returned by gvc_mixer_stream_set_volume(), so unchanged values are
sent to the audio backend again.

This is audible with PipeWire DSP sinks. Volume changes pass through a
virtual filter sink and its processing graph before reaching the hardware
sink. The redundant pushes repeatedly update that control path while the
slider is moving, producing crackles. Native hardware sinks make the same
shell behavior much less apparent.

GNOME Settings does not show the problem because its volume slider calls
gvc_mixer_stream_set_volume() directly and only pushes the volume when the
effective channel map changed.

The Quick Settings slider now follows the same behavior and reuses the
returned change state for notification handling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4302>
(cherry picked from commit bd5f0a10d101d2ac2110ea8e902eb9515749324c)

3 months agomagnifier: Avoid applying monitor scaling factors to the cursor twice
Daniel van Vugt [Wed, 15 Jul 2026 10:44:06 +0000 (18:44 +0800)]
magnifier: Avoid applying monitor scaling factors to the cursor twice

The mouse actor needs special consideration because it is not a child
of the _uiGroupClone being magnified. So it gets magnified separately
*and* already has its own scaling factor from the source actor
(actually from the display scaling factor).

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/9302
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4290>
(cherry picked from commit b258fed0671d0f73a0308d42ab0af820dfab62cf)

3 months agomagnifier: Call _updateCloneGeometry() for MagnifierMouseTrackingMode.NONE
Daniel van Vugt [Thu, 23 Jul 2026 10:03:43 +0000 (18:03 +0800)]
magnifier: Call _updateCloneGeometry() for MagnifierMouseTrackingMode.NONE

The NONE mode is hidden from gnome-control-center, but if you force it
then it should also update the cursor and crosshairs when the pointer
moves.

Suggested by: Matthew Hiltner

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4290>
(cherry picked from commit 7cc0a83aaecedb7f6e5c9932a198c8d6999b8a5b)

3 months agoibusManager: Avoid reusing a renewed cancellable across async calls
Marco Trevisan (Treviño) [Thu, 23 Jul 2026 10:02:04 +0000 (12:02 +0200)]
ibusManager: Avoid reusing a renewed cancellable across async calls

When the shared cancellable gets renewed, in-flight async requests can end up
using the wrong instance.
Pass a stable cancellable per operation so each request stays bound to the
cancellable it started with.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4296>
(cherry picked from commit ecbfbcb78e25b342687623c52e17c413a4263315)

3 months agojs: Adjust to proxy wrapper change
Florian Müllner [Sun, 19 Jul 2026 10:26:34 +0000 (12:26 +0200)]
js: Adjust to proxy wrapper change

Gio.DBus.makeProxyWrapper() now returns a Gio.DBusProxy subclass
rather than a function (that returns a proxy object).

That means it must now be invoked with `new`, so adjust the couple
of places where we weren't doing that already.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4293>
(cherry picked from commit 7d8ff6b63ba908546e04d464cdd4681e125e5b12)

3 months agoshellMountOperation: Add missing docstrings
Carlos Garnacho [Mon, 6 Jul 2026 17:37:42 +0000 (19:37 +0200)]
shellMountOperation: Add missing docstrings

For some reason, eslint trips up with non-exported classes with
a static initializer. Add the missing docs that somehow make it
happy.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4248>
(cherry picked from commit 46a3ec66913df94da6da5661cb3c090f28ce6253)

3 months agolookingGlass: Add missing docstrings
Carlos Garnacho [Mon, 6 Jul 2026 17:35:44 +0000 (19:35 +0200)]
lookingGlass: Add missing docstrings

For some reason, eslint trips up with non-exported classes with
a static initializer. Add the missing docs that somehow make it
happy.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4248>
(cherry picked from commit 2b9350ed8571c2dab1b5400a3e18d0b8b0b7f1a3)

3 months agoshell/global: Use g_autoptr
Alessandro Bono [Mon, 29 Jun 2026 12:44:49 +0000 (14:44 +0200)]
shell/global: Use g_autoptr

Remove manual g_error_free, g_clear_error, g_object_unref, and
g_free usage.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4275>
(cherry picked from commit 086ad919a6f35c42f0f16dcf569876f556f99b8f)

3 months agoshell/global: Plug a leak
Alessandro Bono [Mon, 29 Jun 2026 11:17:07 +0000 (13:17 +0200)]
shell/global: Plug a leak

global->wm is created with shell_wm_new() which returns a new reference,
but it was never released in shell_global_finalize().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4275>
(cherry picked from commit 39b90e3c43db9d1a610ddf3bec68792423f671a1)

3 months agoshell/global: Plug a leak
Alessandro Bono [Mon, 29 Jun 2026 11:16:55 +0000 (13:16 +0200)]
shell/global: Plug a leak

Use g_autoptr to ensure the variant is always freed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4275>
(cherry picked from commit 2405521d039fa61f754c190b6f3fd5a0b7f8c2da)

3 months agoshell/global: Iterate over all leisure closures
Alessandro Bono [Mon, 29 Jun 2026 11:16:40 +0000 (13:16 +0200)]
shell/global: Iterate over all leisure closures

The loop was using 'closures->data' instead of 'iter->data', causing
only the first leisure closure to be executed and freed on each cycle.
All subsequent closures in the list were leaked.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4275>
(cherry picked from commit 28fc2fc85b34e8c8291330d4b62d5a3e1092b3d6)

3 months agoextensionSystem: Split out the actual extension disabling
Marco Trevisan (Treviño) [Thu, 7 May 2026 18:20:24 +0000 (20:20 +0200)]
extensionSystem: Split out the actual extension disabling

We will need it in an upcoming commit, and let's try to share code, even
if it's not much

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4276>
(cherry picked from commit 3a4bb929e34d6fbe36f84a335180d063cdf7d413)

3 months agoextensionSystem: Clarify what the extension disable function does
Marco Trevisan (Treviño) [Tue, 30 Jun 2026 19:32:12 +0000 (21:32 +0200)]
extensionSystem: Clarify what the extension disable function does

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4276>
(cherry picked from commit f10dcaac409ea87c1577e7df4fccdf16a3768597)

3 months agoworkspaceAnimation: Don't exclude minimized windows
Florian Müllner [Tue, 28 Apr 2026 11:49:58 +0000 (13:49 +0200)]
workspaceAnimation: Don't exclude minimized windows

We may be switching workspaces because we are focusing a window
that is located on a different workspace.

In case that new focus window was minimized, it currently just pops
up out of nowhere after the animation, as we are only tracking windows
that are visible at the beginning of the transition.

To fix this, don't exclude minimized windows from tracking, but hide
them until they are unminimized.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4199>
(cherry picked from commit 620efa31cd2669ef22e6dc24f2a5dca70918ff57)

3 months agoworkspaceAnimation: Sort existing records when restacking
Florian Müllner [Tue, 28 Apr 2026 12:25:44 +0000 (14:25 +0200)]
workspaceAnimation: Sort existing records when restacking

When restacking, we currently re-filter window actors, then match
each to the corresponding record.

Instead, sort the existing records according to the new stacking,
then iterate over those directly.

This reflects more directly that window records are fixed during
the transition, and avoids a (harmless) warning in case a window
only appeared during the animation and therefore cannot be
matched to a record.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/8881
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4199>
(cherry picked from commit e7e6de300cfb87c0f91738861b545017e5290ef9)

3 months agoextensions-tool: Mark flag enum as flag
Florian Müllner [Sat, 25 Apr 2026 19:37:29 +0000 (21:37 +0200)]
extensions-tool: Mark flag enum as flag

Spotted by gobject-linter: use_g_gnuc_flag_enum

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4193>
(cherry picked from commit 7ac000acffe5f030f31fa3dfed9a7fe608c40f36)

3 months agoextensions-tool: Use g_strcmp0() for NULL-safety
Florian Müllner [Sat, 25 Apr 2026 01:22:03 +0000 (03:22 +0200)]
extensions-tool: Use g_strcmp0() for NULL-safety

While the argument cannot actually be NULL here (check in caller),
this isn't easily detected by tooling.

Spotted by gobject-linter: use_g_strcmp0

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4193>
(cherry picked from commit cc9735f968df2e0048869813d95e6a108cc6814b)

3 months agoextensions-tool: Use g_string_free_and_steal() where appropriate
Florian Müllner [Sat, 25 Apr 2026 01:21:12 +0000 (03:21 +0200)]
extensions-tool: Use g_string_free_and_steal() where appropriate

It has clearer semantics than `g_string_free (..., FALSE)`.

Spotted by gobject-linter: use_g_string_free_and_steal

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4193>
(cherry picked from commit 9edfd22b968b729d92f2098349f803b4c1c23715)

3 months agoextensions-tool: Use consistent include order
Florian Müllner [Sat, 25 Apr 2026 01:18:39 +0000 (03:18 +0200)]
extensions-tool: Use consistent include order

Spotted by gobject-linter: include_order

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4193>
(cherry picked from commit 653be4a9d308f99fc9ceb6a07ef020432678132e)

3 months agoUpdate Kazakh translation
Baurzhan Muftakhidinov [Sun, 26 Jul 2026 06:26:31 +0000 (06:26 +0000)]
Update Kazakh translation

4 months agopadOsd: Fix menu animations
Florian Müllner [Fri, 29 May 2026 15:30:32 +0000 (17:30 +0200)]
padOsd: Fix menu animations

Like outlined in the previous commit, `true` is interpreted as
`PopupAnimation.SLIDE`, while we want the full animation with
both slide and fade here.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4237>

4 months agokeyboard: Fix menu animation
Florian Müllner [Fri, 29 May 2026 15:15:26 +0000 (17:15 +0200)]
keyboard: Fix menu animation

PopupMenu.open() takes a PopupAnimation flag, not a boolean. Due
to implicit type conversion, we are currently effectively passing
`PopupAnimation.SLIDE`, so we miss the fade part of the animation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4237>

4 months agoBump version to 50.3
Florian Müllner [Mon, 29 Jun 2026 18:35:06 +0000 (20:35 +0200)]
Bump version to 50.3

Update NEWS.

4 months agost/theme-node: Correct StTextAlign docs
Florian Müllner [Wed, 29 Apr 2026 18:51:42 +0000 (20:51 +0200)]
st/theme-node: Correct StTextAlign docs

LEFT/RIGHT always align to the left/right. Those only correspond
to the beginning/end for LTR locales, in RTL they are swapped.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4204>
(cherry picked from commit 26d1056a9afbfcbe50e18f62cd3fcb7b7f87da74)

4 months agostyle: Give notifications on lock screen the same width as in session
Florian Müllner [Mon, 11 May 2026 13:16:16 +0000 (15:16 +0200)]
style: Give notifications on lock screen the same width as in session

There is no strong reason to use the same width as user list and prompt
for notifications, in particular as the smaller width can make the
notification's content appear more cramped.

Instead, give notifications the same width as the message list in
the session. Especially where we reuse the same component — namely
media messages — this ensures consistent presentation.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/9218
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4217>
(cherry picked from commit 6b52520d9d0c3e8d918dd87bb2a04dc3122755a5)

4 months agoshell/app: Plug GTask leak
Alessandro Bono [Fri, 19 Jun 2026 10:43:31 +0000 (12:43 +0200)]
shell/app: Plug GTask leak

The shell_app_activate_action() function gives ownership of the task
to activate_action_get_bus_cb(), which then transfers it to
on_activate_action_cb().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4258>
(cherry picked from commit 8e7c0290ef7b0846bf4953217b0e2241d1259811)

4 months agoshell/app: Format fix
Alessandro Bono [Fri, 19 Jun 2026 10:52:32 +0000 (12:52 +0200)]
shell/app: Format fix

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4258>
(cherry picked from commit 26eb4f723554f8f4e498b5c4bd53762d2bf6c221)

4 months agobackground: Handle promise rejection from _loadFile()
Alessandro Bono [Tue, 16 Jun 2026 08:47:10 +0000 (10:47 +0200)]
background: Handle promise rejection from _loadFile()

This suppresses the following:
```
(gnome-shell:11243): Gjs-WARNING **: 19:15:39.498: Unhandled promise rejection. To suppress
this warning, add an error handler to your promise chain with .catch() or a try-catch block
around your await expression. Stack trace of the failed promise:
_loadFile@resource:///org/gnome/shell/ui/background.js:501:20
_load@resource:///org/gnome/shell/ui/background.js:531:14
_init@resource:///org/gnome/shell/ui/background.js:288:14
Background@resource:///org/gnome/shell/ui/background.js:244:4
getBackground@resource:///org/gnome/shell/ui/background.js:635:30
_createBackgroundActor@resource:///org/gnome/shell/ui/background.js:807:49
_updateBackgroundActor@resource:///org/gnome/shell/ui/background.js:779:39
_createBackgroundActor/changeSignalId<@resource:///org/gnome/shell/ui/background.js:835:18
_emitChangedSignal/this._changedIdleId<@resource:///org/gnome/shell/ui/background.js:321:18
@resource:///org/gnome/shell/ui/init.js:21:20
```

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4253>
(cherry picked from commit 1a9df2b07371116c25bf0751767377df75cbaf6c)

4 months agoappDisplay: Clip the icon+label to allocation when expanding
Daniel van Vugt [Tue, 9 Jun 2026 07:44:39 +0000 (15:44 +0800)]
appDisplay: Clip the icon+label to allocation when expanding

It's hard to see at regular speed, but if you slow down the animation
then it becomes apparent the label was appearing outside the tile during
expansion. This keeps it clipped inside the expanding tile.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4247>
(cherry picked from commit 60ec1fae0d581490f2a82cb60499731977bbdfff)

4 months agoappDisplay: Animate whole icon tile when expanding label
Daniel van Vugt [Fri, 5 Jun 2026 08:43:45 +0000 (16:43 +0800)]
appDisplay: Animate whole icon tile when expanding label

This gives a smoother whole-tile expand animation, while retaining the
old ellipsize-and-shift-up collapse animation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4247>
(cherry picked from commit 32171c0be245829746755987816a89b7de472486)

4 months agoworkspace: Avoid redundant boundingBox copies in window layout
Andre Nijman [Mon, 8 Jun 2026 05:45:01 +0000 (13:45 +0800)]
workspace: Avoid redundant boundingBox copies in window layout

WorkspaceLayout's allocation reads child.boundingBox four times for each
window on every frame of an overview transition. The getter returns a
fresh copy of the cached box on every access, so this is four throwaway
objects per window per frame feeding the garbage collector.

Read the box into a local once and use that. The values are identical;
only the per-frame allocations go away.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4250>
(cherry picked from commit d4b5bc781535104475fba490fccfb0dd7934c96f)

4 months agosearch: Announce search result description to screen readers
Lukáš Tyrychtr [Mon, 8 Jun 2026 13:50:36 +0000 (15:50 +0200)]
search: Announce search result description to screen readers

Add a described by relation to the search button so the description is read
when the button gets focus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4251>
(cherry picked from commit a6bb705d7abb1e867b117e66a03dba6c8ba8cb45)

4 months agoworkspaceAnimation: Block workspace updates during switch
Tony Chen [Tue, 2 Jun 2026 20:30:18 +0000 (16:30 -0400)]
workspaceAnimation: Block workspace updates during switch

WorkspaceAnimation uses a fixed set of workspace indices to transition
between for each gesture/animation.

That means that if workspaces change during the animation, the mapping
from workspace adjustment value to the animation progress can involve
invalid indices and the animation ends on the wrong workspace.

To fix this, block workspace updates during the animation.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8148

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4014>
(cherry picked from commit eaa4e0577a08c3ed38b5f512b4af0b88ede7f1f5)

4 months agowindowManager: Expose WorkspaceTracker blockUpdates & unblockUpdates
Tony Chen [Tue, 2 Jun 2026 20:16:49 +0000 (16:16 -0400)]
windowManager: Expose WorkspaceTracker blockUpdates & unblockUpdates

Update blocking is currently only used by the workspace switcher popup,
but the workspace animation needs to do the same.

To prepare for that, expose block workspace updates on WindowManager
to make it available outside the module.

Use a counter to track block/unblock calls and avoid contention over the
_pauseWorkspaceCheck boolean inside WorkspaceTracker.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4014>
(cherry picked from commit 217b1502057a78b13a3a5dd73a8b202e81aec127)

4 months agoshell/app: Cleanup journalfd with g_autofd instead of close()
Swagtoy [Mon, 1 Jun 2026 19:24:01 +0000 (15:24 -0400)]
shell/app: Cleanup journalfd with g_autofd instead of close()

Signed-off-by: Swagtoy <me@ow.swag.toys>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4233>
(cherry picked from commit e57c64620ea7d1b6f208a3ba53b0fcaebf764876)

4 months agoUpdate Polish translation
Victoria Niedzielska [Tue, 23 Jun 2026 16:07:33 +0000 (16:07 +0000)]
Update Polish translation

4 months agoUpdate Belarusian translation
Vasil Pupkin [Sun, 21 Jun 2026 16:30:15 +0000 (16:30 +0000)]
Update Belarusian translation

5 months agoUpdate Chinese (China) translation
luming zh [Mon, 8 Jun 2026 02:20:10 +0000 (02:20 +0000)]
Update Chinese (China) translation

5 months agoUpload to unstable (transition: #1132301)
Simon McVittie [Sat, 6 Jun 2026 09:11:06 +0000 (10:11 +0100)]
Upload to unstable (transition: #1132301)

5 months agoRe-upload, no changes
Simon McVittie [Sun, 31 May 2026 21:14:09 +0000 (22:14 +0100)]
Re-upload, no changes

5 months agoRelease to experimental
Simon McVittie [Sun, 31 May 2026 20:57:12 +0000 (21:57 +0100)]
Release to experimental

5 months agoStandards-Version: 4.7.4 (no changes required)
Simon McVittie [Sun, 31 May 2026 08:07:43 +0000 (09:07 +0100)]
Standards-Version: 4.7.4 (no changes required)

5 months agod/patches: Drop patches that were applied upstream
Simon McVittie [Sun, 31 May 2026 07:56:22 +0000 (08:56 +0100)]
d/patches: Drop patches that were applied upstream

5 months agoNew upstream release
Simon McVittie [Sun, 31 May 2026 07:49:36 +0000 (08:49 +0100)]
New upstream release

5 months agoUpdate upstream source from tag 'upstream/50.2'
Simon McVittie [Sun, 31 May 2026 07:49:36 +0000 (08:49 +0100)]
Update upstream source from tag 'upstream/50.2'

Update to upstream version '50.2'
with Debian dir 371a946a9fd88efd4e7bae5c766e58dca9d639fc

5 months agoNew upstream version 50.2
Simon McVittie [Sun, 31 May 2026 07:49:31 +0000 (08:49 +0100)]
New upstream version 50.2

5 months agoBump version to 50.2
Florian Müllner [Tue, 26 May 2026 16:07:46 +0000 (18:07 +0200)]
Bump version to 50.2

Update NEWS.

5 months agostatus/volume: Show input only if stream is running
Herman Fries [Thu, 14 May 2026 13:09:40 +0000 (15:09 +0200)]
status/volume: Show input only if stream is running

Input indicator should only show if a stream is in running state,
ignoring passive streams such as echo-cancellation or denoise filters.

The stream-changed listener is required as streams might transition
between idle and running states.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/7217

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4218>

5 months agologinDialog: Open session/a11y menu on either button
Florian Müllner [Mon, 25 May 2026 19:53:19 +0000 (21:53 +0200)]
loginDialog: Open session/a11y menu on either button

Users can choose whether the left or right mouse button acts
as the primary one, however that setting isn't carried over
to the login screen.

As the secondary button is unused in that context anyway, most
elements already accept either button. Do the same for the two
remaining elements.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/9243
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4225>
(cherry picked from commit 8f80504eca99e4191fbc5561abe65429e80a7d26)

5 months agoUpdate Cornish translation
Flynn Peck [Mon, 18 May 2026 11:13:51 +0000 (11:13 +0000)]
Update Cornish translation

5 months agobuild: Update libgnome-volume-control revision
Florian Müllner [Fri, 15 May 2026 22:19:50 +0000 (00:19 +0200)]
build: Update libgnome-volume-control revision

The new revision correctly sets the state of source streams as well,
instead of just sink streams.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/7217
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4220>

5 months agoauthPrompt: Await wiggle via show-message promise resolver
Joan Torres Lopez [Tue, 5 May 2026 15:28:18 +0000 (17:28 +0200)]
authPrompt: Await wiggle via show-message promise resolver

Pass promise resolver through the show-message signal so the
message queue waits for the wiggle animation to finish before scheduling
the next message timeout. This replaces the previous approach of manually
increasing the timeout duration to account for the wiggle.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4209>

5 months agoauthPrompt: Call wiggle directly in _onShowMessage
Joan Torres Lopez [Tue, 5 May 2026 19:32:06 +0000 (21:32 +0200)]
authPrompt: Call wiggle directly in _onShowMessage

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4209>

5 months agoanimationUtils: Skip no-op wiggle to avoid cancelling pending transitions
Joan Torres Lopez [Tue, 5 May 2026 15:26:27 +0000 (17:26 +0200)]
animationUtils: Skip no-op wiggle to avoid cancelling pending transitions

When wiggle() is called with duration 0, the async easeAsync calls
yield between microtasks, leaving pending operations that remove
transitions on the same property. This becomes a problem when two
setMessage() calls happen in the same call stack (e.g. via
_queuePriorityMessage): the first fires a no-op wiggle(dur:0) and
the second starts the real wiggle(dur:65). When microtasks drain,
the first wiggle's pending easeAsync calls overwrite the second
wiggle's active transition, effectively cancelling the real animation.

Return early when duration is 0, since the animation is a no-op anyway.

Fixes: fdadbb7a5a2 ("animationUtils: Use easeAsync() for wiggle")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/9207
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4209>

5 months agoUpdate Belarusian translation
Vasil Pupkin [Thu, 14 May 2026 17:17:05 +0000 (17:17 +0000)]
Update Belarusian translation

5 months agoUpdate Cornish translation
Flynn Peck [Tue, 12 May 2026 10:58:24 +0000 (10:58 +0000)]
Update Cornish translation

5 months agoUpdate Cornish translation
Flynn Peck [Mon, 11 May 2026 21:00:47 +0000 (21:00 +0000)]
Update Cornish translation

6 months agoAdjust for goblint → gobject-linter name change
Florian Müllner [Tue, 5 May 2026 16:32:00 +0000 (18:32 +0200)]
Adjust for goblint → gobject-linter name change

The project was renamed to avoid a name clash with an existing
project; update the config file to the new name.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4210>

6 months agoUpdate Norwegian Nynorsk translation
Bjørn Mørkedal [Wed, 6 May 2026 10:02:07 +0000 (10:02 +0000)]
Update Norwegian Nynorsk translation

6 months agoUpdate Chinese (China) translation
luming zh [Tue, 5 May 2026 09:51:07 +0000 (09:51 +0000)]
Update Chinese (China) translation

6 months agoAdd goblint configuration
Florian Müllner [Tue, 28 Apr 2026 10:25:15 +0000 (12:25 +0200)]
Add goblint configuration

When discussing goblint on Matrix, there were some concerns
around its rules for defining properties:

 - having to explicitly track the last property ID, instead
   of including N_PROPS in the anonymous enum

 - including read-only properties in set() and write-only in get()
   adds unreachable code, which is bad for code coverage

Those were considered more important than the benefit of checking
get()/set() with `-Wswitch-enum`, so at least for now stick with
the existing property conventions.

Add a configuration that enables "legacy" style for the corresponding
rules.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4198>

6 months agokeyboardManager: Use layout id when reapplying
Sebastian Keller [Thu, 30 Apr 2026 01:44:57 +0000 (03:44 +0200)]
keyboardManager: Use layout id when reapplying

`_doApply()` expects the id rather than the layout info itself. Passing
the layout info caused the lookup to fail and the function to exit
early. This was preventing `xkb-option` or `xkb-model` settings from
applying when changed.

Fixes: 0f9034687 ("status/keyboard: Adapt to external source of keyboard layout")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/9197
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4205>

6 months agoUpdate Slovak translation
Jose Riha [Thu, 30 Apr 2026 07:40:41 +0000 (07:40 +0000)]
Update Slovak translation

6 months agoUpdate Slovak translation
Jose Riha [Wed, 29 Apr 2026 16:57:36 +0000 (16:57 +0000)]
Update Slovak translation

6 months agoIgnore pycache and wraplock
Liam Rust [Wed, 29 Apr 2026 07:25:48 +0000 (03:25 -0400)]
Ignore pycache and wraplock

Running tests and builds will sometimes create either a Python
`__pycache__` directory or a Meson `.wraplock` file. Probably a good
idea to ignore those so they never get included upstream.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4201>

6 months agoAdd Lao translation
Saikeo Kavhanxay [Tue, 28 Apr 2026 15:05:50 +0000 (15:05 +0000)]
Add Lao translation

6 months agomessageTray: Don't try to focus destroyed actor
Sebastian Keller [Mon, 27 Apr 2026 20:53:59 +0000 (22:53 +0200)]
messageTray: Don't try to focus destroyed actor

When `ungrabFocus()` is called after hiding a notification, the previous
focus actor might have already been destroyed and trying to focus it
will trigger a gjs error.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/work_items/9190
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4197>

6 months agoUpdate Slovak translation
Jose Riha [Mon, 27 Apr 2026 11:11:13 +0000 (11:11 +0000)]
Update Slovak translation

6 months agoshell/app: Be extra careful when applying GPU environment
Florian Müllner [Fri, 24 Apr 2026 22:19:36 +0000 (00:19 +0200)]
shell/app: Be extra careful when applying GPU environment

We get the environment from SwitcherooControl as an array of
key-value pairs. When applying it, we loop over the array in pairs,
assuming that every key has a value.

While this is the expected format, it does not hurt to be defensive
against possible bugs in the service, so explicitly check that both
key and value are non-NULL before applying them.

Spotted by papagai.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4194>

6 months agoendSessionDialog: Recognize scheduled updates in the Power Off dialog
Milan Crha [Wed, 22 Apr 2026 15:04:28 +0000 (17:04 +0200)]
endSessionDialog: Recognize scheduled updates in the Power Off dialog

The Power Off dialog should show a checkbox to install (or not) a scheduled
update, but I missed it in my previous https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4185

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4188>

6 months agoanimation: Prevent spinner animation from resetting
Vicente Bertolotti [Sat, 25 Apr 2026 01:26:28 +0000 (21:26 -0400)]
animation: Prevent spinner animation from resetting

Currently, the search status spinner animation restarts on every
single keystroke while a search is in progress. This occurs because
redundant calls to `play()` replace the previous content and restart
the animation from the beginning.

This commit fixes this by ignoring redundant `play()` and `stop()` calls.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8695

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4191>

6 months agoUpdate Slovak translation
Jose Riha [Thu, 23 Apr 2026 20:06:58 +0000 (20:06 +0000)]
Update Slovak translation

6 months agoglobal: Stop using clutter_get_default_backend
Bilal Elmoussaoui [Mon, 16 Mar 2026 21:31:16 +0000 (22:31 +0100)]
global: Stop using clutter_get_default_backend

Adapt to change proposed at https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4981

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4135>

6 months agoautorunManager: Connect to the correct notification signal
Sebastian Keller [Tue, 21 Apr 2026 11:59:51 +0000 (13:59 +0200)]
autorunManager: Connect to the correct notification signal

The signal is called `activated`. This was triggering an error and
preventing the notification from showing up when connecting an USB
drive with autorun enabled.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4187>

6 months agoautorunManager: Catch and log errors from mount-added handler
Sebastian Keller [Tue, 21 Apr 2026 11:58:38 +0000 (13:58 +0200)]
autorunManager: Catch and log errors from mount-added handler

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/9183
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4187>

6 months agoendSessionDialog: Prepare updates also in the "Restart & Install" dialog
Milan Crha [Mon, 20 Apr 2026 10:22:48 +0000 (12:22 +0200)]
endSessionDialog: Prepare updates also in the "Restart & Install" dialog

The current code expects a checkbox to confirm update installation to be
present, but when the updates are already scheduled, it did not confirm
the actual user action for the update, aka to reboot the machine, instead
of using the previously set update action, which could be Power Off.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4185>

6 months agoendSessionDialog: Differentiate between prepared and scheduled updates again
Milan Crha [Tue, 21 Apr 2026 15:38:10 +0000 (17:38 +0200)]
endSessionDialog: Differentiate between prepared and scheduled updates again

The prepared updates are those downloaded, while the scheduled updates
are those ready to be installed the next machine boot. The previous
gnome-software change with its OfflineUpdates D-Bus interface did not
count with it and claimed all the updates as scheduled, even when they
had been only prepared. This makes it work again by utilizing the
gnome-software changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4185>

6 months agoUpdate Dutch translation
Nathan Follens [Sun, 19 Apr 2026 17:28:22 +0000 (17:28 +0000)]
Update Dutch translation

6 months agoscreencastService: Add rate control to VA-API H.264 pipelines
Mikhail Gavrilov [Sun, 12 Apr 2026 13:14:01 +0000 (18:14 +0500)]
screencastService: Add rate control to VA-API H.264 pipelines

The vah264enc and vah264lpenc pipelines do not specify any rate control
parameters, causing the encoder to use its default bitrate. At 4K this
results in ~12 Mbit/s recordings — roughly 18x larger than the VP8
software fallback (~630 kbit/s) with no visible quality benefit for
typical screencast content.

All other pipelines in the PIPELINES array constrain quality explicitly:
openh264enc uses qp-max=26/qp-min=26, vp8enc uses max-quantizer=17 and
buffer-size=20000. Only the two VA-API pipelines are left unconstrained.

Add rate-control=vbr bitrate=2048 target-percentage=50 to both VA-API
pipelines. This produces ~1 Mbit/s average / 2 Mbit/s peak, which is
comparable to what the other encoders produce and works across both AMD
(which lacks CQP) and Intel VA-API implementations.

Before (4K, 5s recording): 11688 kb/s, 7.2 MB
After  (4K, 5s recording):  2472 kb/s, 1.6 MB

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/9165
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4171>